import Vue from "vue"
import qs from "qs"
import axios from "axios"


// 开发环境
if(process.env.NODE_ENV === "development"){
  Vue.prototype.$pre = "http://localhost:3000"
}
// 生产环境
if(process.env.NODE_ENV === "production"){
  Vue.prototype.$pre = ""
}


// 请求拦截器
axios.interceptors.request.use((config)=>{

  return config
})
// 响应拦截器
axios.interceptors.response.use((res)=>{
  console.group("本次请求的路径地址是：" + res.config.url);
  console.log(res);
  console.groupEnd("拦截器结束");

  return res
})

/* 
  get请求
    url     请求地址
    params    请求参数      如果需要传参就传一个对象类型的，如果不需要传参就不用传第二个实参
*/
export const get = (url,params={})=>{
  return new Promise((resolve,error)=>{
    axios.get(url,{
      params:params
    }).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}

/* 
  post请求
    url     请求地址
    params  请求参数    如果需要传参就传一个对象类型，如果不需要传参就不用传第二个参数
    isFile  是否包含文件    如果包含文件就传true，如果不包含文件就不用传第三个参数
*/
export const post = (url,params={},isFile=false)=>{

  let data = null
  if(isFile){
    // 包含文件
    data = new FormData()
    for(let i in params){
      data.append(i,params[i])
    }
  }else{
    // 不包含文件
    data = qs.stringify(params)
  }

  return new Promise((resolve,error)=>{
    axios.post(url,data).then(res=>{
      resolve(res)
    }).catch(err=>{
      error(err)
    })
  })
}